package com.cyf.filmDownload.m3u8.entity;

import lombok.Data;

import java.util.List;

/**
 * @author chenyifan
 * @create 2024-05-31 14:14
 */
@Data
public class M3u8ParserResult {

    /**
     * 原始 m3u8 链接
     */
    private String originalM3u8Url;

    /**
     * 含有 ts 的 m3u8 链接
     */
    private String realM3u8Url;

    /**
     * 含有 ts 的 m3u8 文件内容
     */
    private List<String> lines;

    /**
     * 视频是否加密
     */
    private boolean isEncrypt;

    /**
     * EXT-X-KEY 所在文件行
     */
    private int extXKeyIndex;

    /**
     * 从 EXT-X-KEY 解析出来的加密方法
     */
    private String encryptMethod;

    /**
     * 从 EXT-X-KEY 解析出来的 uri
     */
    private String encryptUri;

    /**
     * 从 EXT-X-KEY 解析出来的初始化向量
     * 在 AES 加密中用于增加加密数据的随机性，以防止使用相同密钥加密的明文出现模式而被破解。
     */
    private String iv;

    /**
     * 加密 key url
     */
    private String keyUrl;

    /**
     * 加密 key
     */
    private byte[] keyByte;

    /**
     * iv 比特数组
     */
    private byte[] ivByte;

    /**
     * ts 下载目录
     */
    private String tsDir;

    /**
     * 视频分片数量
     */
    private int tsCount;

    /**
     * ts 列表
     */
    private List<VideoTs> tsList;

    /**
     * 所有临时文件下载的主目录
     */
    private String tempMainDir;

    /**
     * 视频名称
     */
    private String videoName;

    /**
     * 视频存放路径
     */
    private String videoPath;
}
